Form Panel তৈরি এবং কনফিগার করা

Web Development - এক্সটিজেএস (ExtJS) - ExtJS Form এবং Form Validation |

ExtJS তে Form Panel একটি খুবই গুরুত্বপূর্ণ UI কম্পোনেন্ট, যা ব্যবহারকারীদের ইনপুট নেওয়ার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের ফর্ম ফিল্ড (যেমন, টেক্সটফিল্ড, রেডিও বাটন, চেকবক্স, ড্রপডাউন ইত্যাদি) ধারণ করে এবং ডেটা সাবমিট করার জন্য ব্যবহৃত হয়। Form Panel সঠিকভাবে কনফিগার করলে ইউজারের ইনপুট প্রক্রিয়া সহজ এবং ইন্টারেক্টিভ হয়।


Form Panel কী?

Form Panel ExtJS এ একটি কনটেইনার প্যানেল, যা ফর্ম ইনপুট ফিল্ড, সাবমিট বাটন, এবং ইনপুট ভ্যালিডেশন কনফিগারেশন ধারণ করে। এটি সাধারণত বিভিন্ন ইনপুট ফিল্ড যেমন টেক্সটফিল্ড, রেডিও বাটন, ড্রপডাউন লিস্ট এবং বাটন ইত্যাদির মাধ্যমে ব্যবহারকারীর ডেটা সংগ্রহ করে।

Form Panel তৈরি করার উপায়

এখানে Ext.form.Panel কনফিগারেশনের মাধ্যমে একটি বেসিক Form Panel তৈরি করা হবে।


১. Form Panel তৈরি করা

Form Panel তৈরি করার জন্য প্রথমে একটি প্যানেল তৈরি করতে হবে এবং তারপর তার মধ্যে ফর্ম ইনপুট ফিল্ড যুক্ত করতে হবে।

উদাহরণ:

Ext.create('Ext.form.Panel', {
    title: 'User Registration Form',
    width: 350,
    bodyPadding: 10,  // ফর্মের চারপাশে প্যাডিং
    renderTo: Ext.getBody(),  // DOM এ রেন্ডার করা
    items: [
        {
            xtype: 'textfield',  // টেক্সটফিল্ড ইনপুট
            name: 'username',  // ইনপুট ফিল্ডের নাম
            fieldLabel: 'Username',  // লেবেল
            allowBlank: false,  // ইনপুট ফিল্ডটি খালি থাকতে পারবে না
            labelAlign: 'top'  // লেবেল উপরে থাকবে
        },
        {
            xtype: 'textfield',
            name: 'email',
            fieldLabel: 'Email',
            vtype: 'email',  // ভ্যালিডেশন: ইমেল ফর্ম্যাট চেক
            allowBlank: false,
            labelAlign: 'top'
        },
        {
            xtype: 'textfield',
            name: 'password',
            fieldLabel: 'Password',
            inputType: 'password',  // পাসওয়ার্ড ইনপুট ফিল্ড
            allowBlank: false,
            labelAlign: 'top'
        },
        {
            xtype: 'checkbox',  // চেকবক্স ইনপুট
            name: 'agreeTerms',
            fieldLabel: 'I agree to the terms and conditions',
            inputValue: '1',  // চেক করা থাকলে মান হবে 1
            uncheckedValue: '0'  // চেক না থাকলে মান হবে 0
        }
    ],
    buttons: [
        {
            text: 'Submit',
            handler: function() {
                var form = this.up('form').getForm();  // ফর্মের ডেটা সংগ্রহ করা
                if (form.isValid()) {
                    console.log(form.getValues());  // ফর্মের মান কনসোল আউটপুটে দেখানো
                } else {
                    Ext.Msg.alert('Invalid', 'Please fill in the required fields!');
                }
            }
        }
    ]
});

এই উদাহরণে ব্যবহৃত কিছু কনফিগারেশন:

  1. xtype: এটি কম্পোনেন্টের ধরনের নাম। textfield এর মাধ্যমে আমরা ইনপুট ফিল্ড তৈরি করেছি।
  2. name: ফর্ম ফিল্ডের নাম, যা সাবমিটের সময় ব্যবহৃত হবে।
  3. fieldLabel: ফিল্ডের লেবেল যা ইউজারের কাছে দেখানো হবে।
  4. allowBlank: এটি নির্দেশ করে যে, ফিল্ডটি খালি থাকতে পারে কিনা। এখানে false দিলে ফিল্ডটি খালি থাকতে পারবে না।
  5. inputType: পাসওয়ার্ড ইনপুটের জন্য password ব্যবহার করা হয়েছে যাতে ইনপুটটি গোপন থাকে।
  6. vtype: ভ্যালিডেশন টাইপ, যেমন এখানে email দিয়ে ইমেল ফিল্ডের জন্য ভ্যালিডেশন দেয়া হয়েছে।
  7. buttons: ফর্মের নিচে একটি সাবমিট বাটন তৈরি করা হয়েছে। বাটনে ক্লিক করলে, ফর্মটি সঠিকভাবে পূর্ণ হলে ইনপুট ডেটা কনসোল আউটপুটে প্রদর্শিত হবে।

২. ফর্মের ডেটা সাবমিট করা

ফর্মের ডেটা সঠিকভাবে সাবমিট করার জন্য ফর্মের getForm() মেথড ব্যবহার করা হয়। এটি ফর্মের ডেটা রিট্রিভ করে এবং ডেটা সাবমিট করতে সহায়ক।

উদাহরণ:

handler: function() {
    var form = this.up('form').getForm();  // ফর্মের ডেটা সংগ্রহ করা
    if (form.isValid()) {  // ফর্ম ভ্যালিড হলে
        console.log(form.getValues());  // ফর্মের ডেটা কনসোল আউটপুটে দেখানো
    } else {
        Ext.Msg.alert('Invalid', 'Please fill in the required fields!');  // যদি ফর্ম ইনভ্যালিড হয়
    }
}
  • isValid(): ফর্মের সমস্ত ইনপুট ফিল্ড ভ্যালিডেশন চেক করে, এবং যদি সব ইনপুট ভ্যালিড হয় তবে true রিটার্ন করবে।
  • getValues(): এটি ফর্মের সমস্ত ফিল্ডের মান সংগ্রহ করে এবং একটি অবজেক্ট হিসেবে রিটার্ন করে।

৩. ফর্ম ভ্যালিডেশন

ExtJS তে ফর্মের ইনপুট ভ্যালিডেশন সহজে করা যায়। এর জন্য বিভিন্ন প্রপার্টি এবং ভ্যালিডেশন মেথড ব্যবহার করা হয়।

কিছু সাধারণ ভ্যালিডেশন:

  • allowBlank: এই প্রপার্টি দ্বারা একটি ফিল্ড খালি থাকতে পারবে কি না তা নির্ধারণ করা হয়।
  • vtype: ভ্যালিডেশন টাইপ নির্ধারণ করে (যেমন, email, url, alphanum ইত্যাদি)।
  • minLength এবং maxLength: ইনপুটের দৈর্ঘ্য নির্ধারণ করে।
  • regex: কাস্টম ভ্যালিডেশন রেগুলার এক্সপ্রেশন ব্যবহার করে।

উদাহরণ:

{
    xtype: 'textfield',
    name: 'phone',
    fieldLabel: 'Phone Number',
    regex: /^[0-9]{10}$/,  // ফোন নম্বরের জন্য কাস্টম রেগুলার এক্সপ্রেশন
    allowBlank: false
}

সারাংশ

ExtJS তে Form Panel তৈরি এবং কনফিগার করা খুবই সহজ এবং শক্তিশালী। এটি বিভিন্ন ফর্ম ইনপুট ফিল্ড এবং সাবমিট বাটন সমন্বিত করে ডেটা সংগ্রহের প্রক্রিয়াকে সহজ করে তোলে। Form Panel এর সাহায্যে আপনি:

  • ইউজারের ইনপুট গ্রহণ করতে পারেন।
  • ডেটা ভ্যালিডেশন করতে পারেন।
  • ডেটা রিট্রিভ এবং সাবমিট করতে পারেন।

ExtJS এর Form Panel কনফিগারেশন এবং বৈশিষ্ট্যগুলি ব্যবহার করে আপনি শক্তিশালী এবং ইন্টারেক্টিভ ফর্ম তৈরি করতে পারবেন যা ব্যবহারকারীর জন্য সহজ ও সুবিধাজনক হবে।

Content added By
Promotion